<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:c="http://java.sun.com/jsp/jstl/core">


    <body>

        <ui:composition template="./../../WEB-INF/templates/MainTemplate.xhtml">

            <ui:define name="bar">
                <h:form id="barForm">
                    <p:commandButton styleClass="actionButton" id="filtrarButton" value="#{messages.Filtrar}" oncomplete="dialogoFiltrar.show();"></p:commandButton>
                </h:form>
            </ui:define>

            <ui:define name="dialogs">
                <h:form id="dialogoForm">
                <p:dialog modal="true" id="dialogoFiltrar" widgetVar="dialogoFiltrar"  header="#{messages.Filtrar}">
                        <h:panelGrid columns="4">
                            <p:outputLabel for="d" value="#{messages.D}"></p:outputLabel>
                            <p:selectOneMenu converter="#{dConverter}" id="d" value="#{editarProductosPedidoFabricaBean.filtradoDataModel.DFiltrado}" label="#{messages.D}">
                                <f:selectItem itemLabel="#{messages.SeleccionaD}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.ds}" var="d" itemLabel="#{d.descripcion}" itemValue="#{d}"></f:selectItems>
                            </p:selectOneMenu>

                            <p:outputLabel for="c" value="#{messages.C}"></p:outputLabel>
                            <p:selectOneMenu converter="#{cConverter}" id="c" value="#{editarProductosPedidoFabricaBean.filtradoDataModel.CFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaC}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.cs}" var="c" itemLabel="#{c.descripcion}" itemValue="#{c}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="s" value="#{messages.S}"></p:outputLabel>
                            <p:selectOneMenu converter="#{sConverter}" id="s" value="#{editarProductosPedidoFabricaBean.filtradoDataModel.SFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaS}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.ss}" var="s" itemLabel="#{s.descripcion}" itemValue="#{s}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="temporada" value="#{messages.Temporada}"></p:outputLabel>
                            <p:selectOneMenu converter="#{temporadaConverter}" id="temporada" value="#{editarProductosPedidoFabricaBean.filtradoDataModel.temporadaFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaTemporada}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.temporadas}" var="temporada" itemLabel="#{temporada.descripcion}" itemValue="#{temporada}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="serieTallaje" value="#{messages.SerieTallaje}"></p:outputLabel>
                            <p:selectOneMenu converter="#{serieTallajeConverter}" id="serieTallaje" value="#{editarProductosPedidoFabricaBean.filtradoDataModel.serieTallajeFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaSerieTallaje}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.seriesTallaje}" var="serieTallaje" itemLabel="#{serieTallaje.descripcion}" itemValue="#{serieTallaje}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="sexo" value="#{messages.Sexo}"></p:outputLabel>
                            <p:selectOneMenu converter="#{sexoConverter}" id="sexo" value="#{editarProductosPedidoFabricaBean.filtradoDataModel.sexoFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaSexo}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.sexos}" var="sexo" itemLabel="#{sexo.descripcion}" itemValue="#{sexo}"/>  
                            </p:selectOneMenu>
                        </h:panelGrid>
                    <p:commandButton process="@parent" update=":editarPedidoFabricaForm" value="#{messages.Filtrar}" actionListener="#{editarProductosPedidoFabricaBean.filtrar()}" oncomplete="dialogoFiltrar.hide()"></p:commandButton>
                    </p:dialog>
                   
                </h:form>
            </ui:define>
            <ui:define name="content">
                <h:form id="editarPedidoFabricaForm">
                    <p:growl autoUpdate="true" life="4000" id="editarPedidoFabricaGrowl"></p:growl>
                    <p:panel id="editarPedidoFabricaPanelGrid">
                        <h:panelGrid columns="4">
                            <p:outputLabel for="editarFechaEntrega" value="#{messages.FechaEntrega}"></p:outputLabel>
                            <p:calendar required="true" locale="es" showButtonPanel="true" navigator="true" value="#{editarPedidoFabricaBean.pedidoFabricaEditado.fechaEntrega}" id="editarFechaEntrega"/>

                            <p:outputLabel for="editarObservaciones" value="#{messages.Observaciones}"></p:outputLabel>
                            <p:inputTextarea id="editarObservaciones" value="#{editarPedidoFabricaBean.pedidoFabricaEditado.observaciones}"></p:inputTextarea>

                            <p:outputLabel for="editarPenalizaciones" value="#{messages.Penalizaciones}"></p:outputLabel>
                            <p:inputTextarea id="editarPenalizaciones" value="#{editarPedidoFabricaBean.pedidoFabricaEditado.penalizaciones}"></p:inputTextarea>

                        </h:panelGrid>
                        <p:commandButton process="@parent" update=":editarPedidoFabricaForm:editarPedidoFabricaGrowl" value="#{messages.Editar}" actionListener="#{editarPedidoFabricaBean.editarPedidoFabrica()}"></p:commandButton>
                    </p:panel>
                    <p:panel styleClass="noMargin noPadding noBorder" id="panelProductosElegidos">                        
                        <f:facet name="header">
                            #{messages.ProductosPedido}
                        </f:facet>
                        <c:forEach items="#{editarProductosPedidoFabricaBean.tablaPedidoDataModel.CDePedido}" var="c">
                            <p:panel styleClass="noMargin noPadding noBorder">
                                <f:facet name="header" >
                                    #{c.descripcion}
                                </f:facet>
                                <c:forEach items="#{editarProductosPedidoFabricaBean.tablaPedidoDataModel.getSeriesTallajeDePedidoYC(c)}" var="serieTallaje">
                                    <p:panel styleClass="noMargin noPadding noBorder">
            
                                        <p:dataTable styleClass="noMargin noPadding noBorder" var="producto" value="#{editarProductosPedidoFabricaBean.tablaPedidoDataModel.getTodosProductosDePedidoSerieTallajeYC(c, serieTallaje)}">
                                            <p:column style="width:200px;" headerText="#{messages.Producto}">#{producto.descripcion}</p:column>
                                            <p:column style="width:120px;" headerText="#{messages.Color}">#{producto.color}</p:column>
                                            <p:column sortBy="#{producto.pvp}" headerText="#{messages.PvpEsp}" style="width:30px">
                                                <h:outputText value="#{producto.pvp}">
                                                    <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                                </h:outputText> 
                                            </p:column>
                                            <p:column sortBy="#{producto.cotizacion}" headerText="#{messages.Cotizacion}" style="width:30px">
                                                <h:outputText value="#{producto.cotizacion}">
                                                    <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                                </h:outputText> 
                                            </p:column>
                                            <p:column sortBy="#{producto.pvp/producto.cotizacion}" headerText="#{messages.Multiplicador}" style="width:30px">
                                                <h:outputText rendered="#{!producto.cotizacion.equals(BigDecimal.ZERO) and producto.cotizacion!=null}" value="#{producto.cotizacion}">
                                                    <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                                </h:outputText> 
                                            </p:column>
                                            <p:columns styleClass="center pedidoInput" columnIndexVar="index" value="#{serieTallaje.tallaSerieTallajeList}" var="tallaSerieTallaje" headerText="#{tallaSerieTallaje.talla.descripcion}">
                                                <p:inputText styleClass="pedidoInput" rendered="#{editarProductosPedidoFabricaBean.recuperarLineaPedidoDeProductoTalla(producto, serieTallaje.getTallaSerieTallajeList()[index].talla)!=null}" value="#{editarProductosPedidoFabricaBean.recuperarLineaPedidoDeProductoTalla(producto, serieTallaje.getTallaSerieTallajeList()[index].talla).cantidad}">
                                                    <p:ajax event="change" update=":editarPedidoFabricaForm:panelProductosElegidos" process=":editarPedidoFabricaForm:panelProductosElegidos" listener="#{editarProductosPedidoFabricaBean.editarProductoGuardado(producto, serieTallaje.getTallaSerieTallajeList()[index].talla)}"></p:ajax>
                                                </p:inputText>
                                            </p:columns>
                                        </p:dataTable>
                                    </p:panel>
                                </c:forEach>
                                <f:facet name="header">  
                                    Unidades #{c.descripcion}: #{editarProductosPedidoFabricaBean.tablaPedidoDataModel.consultarUnidadesDePedidoDeC(c)} | Subtotal #{c.descripcion}: #{editarProductosPedidoFabricaBean.tablaPedidoDataModel.consultarTotalDePedidoDeC(c)} €
                                </f:facet>
                            </p:panel>
                        </c:forEach>
                        <f:facet name="header">  
                            Unidades: #{editarProductosPedidoFabricaBean.pedidoFabrica.unidades} | Total: #{editarProductosPedidoFabricaBean.pedidoFabrica.total} €
                        </f:facet>
                    </p:panel>
                    <p:panel rendered="#{editarProductosPedidoFabricaBean.lineasPedidoFabrica!=null}" styleClass="noMargin noPadding noBorder" id="render">
                        <f:facet name="header">
                            #{messages.AddProducts}
                        </f:facet>
                        <c:forEach items="#{editarProductosPedidoFabricaBean.tablaPedidoDataModel.CDeDataModel}" var="c">
                            <p:panel styleClass="noMargin noPadding noBorder">
                                <f:facet name="header" >
                                    #{c.descripcion}
                                </f:facet>
                                <c:forEach varStatus="indexForEach" items="#{editarProductosPedidoFabricaBean.tablaPedidoDataModel.getSeriesTallajeDeC(c)}" var="serieTallaje">
                                    <p:panel styleClass="noMargin noPadding noBorder">
                                        <p:dataTable rowKey="#{producto.idProducto}" styleClass="noMargin noPadding noBorder processing" var="producto" value="#{editarProductosPedidoFabricaBean.tablaPedidoDataModel.getTodosProductosDeSerieTallajeYC(c, serieTallaje)}">
                                            <p:column style="width:200px;" headerText="Producto">#{producto.descripcion}</p:column>
                                            <p:column style="width:120px;" headerText="Color">#{producto.color}</p:column>
                                            <p:columns styleClass="center" value="#{serieTallaje.tallaSerieTallajeList}" var="tallaSerieTallaje" headerText="#{tallaSerieTallaje.talla.descripcion}">
                                                <p:inputText styleClass="pedidoInput" rendered="#{editarProductosPedidoFabricaBean.recuperarLineaPedidoDeProductoTallaVacia(producto, tallaSerieTallaje.talla)!=null}" value="#{editarProductosPedidoFabricaBean.recuperarLineaPedidoDeProductoTallaVacia(producto, tallaSerieTallaje.talla).cantidad}">
                                                </p:inputText>
                                            </p:columns>
                                        </p:dataTable>
                                    </p:panel>
                                </c:forEach>
                            </p:panel>
                        </c:forEach>
                        <p:commandButton rendered="#{editarProductosPedidoFabricaBean.lineasPedidoFabrica!=null}" value="Añadir" actionListener="#{editarProductosPedidoFabricaBean.addProductos()}" id="botonAddProductos" process="@parent" update=":editarPedidoFabricaForm"></p:commandButton>
                        <p:commandButton rendered="#{editarProductosPedidoFabricaBean.lineasPedidoFabrica!=null}" value="Cerrar" id="botonCerrarProductos" process="@parent" update=":editarPedidoFabricaForm">
                             <f:setPropertyActionListener target="#{editarProductosPedidoFabricaBean.lineasPedidoFabrica}" value="#{null}"></f:setPropertyActionListener>
                        </p:commandButton>
                    </p:panel>
                </h:form>
            </ui:define>

        </ui:composition>

    </body>
</html>
